A vector processor executes operators that work on vectors that are multidimensional arrays of elements. The elements can range from single bits to multi-bit numerical values, such as bytes, integer words or floating point numbers. Because the vectors can be large, the execution of a single operator can take many cycles of the vector processor. Execution of the operators in a strict sequential fashion is neither efficient nor practical. Inefficiencies exist because a strict sequential execution would lose the benefit of parallelism and partial execution by starting downstream operators when only parts of upstream operators have completed. Storing full vectors as intermediate results between operators is also impractical due to the large amounts of intermediate storage that would be consumed.
It would be desirable to implement a scheduler for vector processing operator allocation.